Crypto 方向基础
入门基础:
- C语言
// 很多代码审计都是以 C语言形式呈现 - Python3:
- 数学基础 (重中之重)
可以参考《信息安全数学基础》(初等数论、近世代数) - linux的常见使用
基础密码学最重要的是要能在 Linux 系统下运行脚本、使用工具。
其余的遇到问题看需要再去学。
注意事项:
- 密码学的要求是两点:算法编程能力,数学推理能力。
- 在很多人看来,没有 pwn、Web 这些能做大量攻击的方向有趣,因人而异吧。
- 密码学基础学完之后会有很多和其他方向(Web, misc, pwn, re)交汇的地方。
参见题目:
DEF CON CTF Qualifier 2018 SAG?
DEF CON CTF Qualifier 2018 smcauth
DEF CON CTF Qualifier 2018 Easy Pisy
codegate2018 miro
涵盖基本知识
- 常见编码方式
base家族、Uuencode、Xxencode 等等等等。 - 古典密码
凯撒密码、栅栏密码、维基利亚密码 等等等等。 - 分组密码
DES、AES 等。 - 非对称密码
RSA、Elgamal、ECC等。 - 哈希函数
经常出现在 Web 题目中
资源推荐
- 学习方式推荐:
看书+看ctfwiki或者自己找一些blog+做题 - 密码学书籍:
《信息安全数学基础》(各个学校都有自己的版本)
《深入浅出密码学:常用加密技术原理与应用》 - 密码学学习网站推荐:
Wiki-CTF-Crypto
(主要是面向ctf解题以及算法编程) - 做题网站:
https://adworld.xctf.org.cn/
https://github.com/ctfs/write-ups-2017
题目类型
| 攻击方式 | 说明 |
|---|---|
| 唯密文攻击 | 只拥有密文 |
| 选择明文攻击 | 拥有加密权限,能够对明文加密后获得相应密文 |
| 已知明文攻击 | 拥有密文与对应的明文。 |
| 选择密文攻击 | 拥有解密权限,能够对密文解密后获得相应明文 |
Crypto 方向负责人:ZER0-Nu1L